package service.impl;

import dao.BackMessageDao;
import dao.impl.BackMessageDaoImpl;
import pojo.BackMessage;
import service.BackMessageService;
import util.PageBean;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 何栋
 * @parameter
 * @return
 **/
public class BackMessageServiceImpl implements BackMessageService {
    @Override
    public PageBean turnPage(int state, int uId) {
        PageBean pageBean=new PageBean();//获得分页对象
        BackMessageDao messageDao=new BackMessageDaoImpl();
        pageBean= messageDao.getDataList(pageBean,state,uId);//调用分页查询方法，并传入分页信息和消息状态
        return pageBean;
    }
    /**
     * 分页显示标题内容、时间
     * @param state 存储消息状态
     * @return mapList 返回存有时间与标题的map的集合
     */
    @Override
    public List<Map> turnPageTitle(PageBean pageBean, int state,int uId) {
        Map map=null;
        if (0!=state&&1!=state){
            state=3;
        }
        List<Map> mapList=new ArrayList();
        BackMessageDao messageDao=new BackMessageDaoImpl();
        pageBean= messageDao.getDataList(pageBean,state,uId);//调用分页查询方法，并传入分页信息和消息状态
        List<BackMessage> list = (List<BackMessage>) pageBean.getList();//获得分页数据并转换成List<BacktMessage>
        for (int i=0;i<list.size();i++){
            map=new HashMap();//每次取得一行数据重新创建一个map对象
            map.put("message",list.get(i).getMessage());
            map.put("uId",list.get(i).getUId());
            map.put("messageId",list.get(i).getMessageId());
            map.put("title",list.get(i).getTitle());//将标题存入map对象
            Timestamp time = list.get(i).getSendTime();
            SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");//设置时间格式
            map.put("time",format.format(time));//转换时间格式使得最终显示为yyyy0MM-dd形式，将转换后的时间存入map对象
            mapList.add(map);//将map存入list
        }
        return mapList;//返回存有时间与标题的map的集合
    }
    /**
     * 插入数据
     * @param backMessage 存储需要插入的数据
     * @return 返回插入结果
     */
    @Override
    public int addOne(BackMessage backMessage) {
        BackMessageDao messageDao=new BackMessageDaoImpl();

        return messageDao.addOne(backMessage);
    }
    /**
     * 根据消息id修改消息状态
     * @param messageId 消息id
     * @param state 消息状态
     * @return
     */
    @Override
    public int modifyState(int[] messageId, int state) {
        int result=0;
        BackMessageDao messageDao=new BackMessageDaoImpl();
        result=messageDao.modifyState(messageId,state);
        return result;
    }
    /**
     * 根据消息id删除
     * @param messageId 消息id
     * @return
     */
    @Override
    public int deletOne(int messageId) {
        int result=0;
        BackMessageDao messageDao=new BackMessageDaoImpl();
        return result;
    }
}
